﻿#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>


//struct S
//{
//	char c1;
//	char c2;
//	int i;
//	
//};

//struct S
//{
//	char c1;
//	int i;
//	char c2;
//
//};

struct S
{
	double d;
	char c1;
	int i;
};
struct s1
{
	char c2;
	struct S s;
	double d;
};

int main()
{
	struct s1 t = { 'a',{ 3.12, 'b', 2 } ,3.12 };

	printf("%zd\n", sizeof(t));
}



////匿名结构体
//struct
//{
//	char c;
//	int i;
//	double d;
//}s = {'x', 2, 4.3};
//
//int main()
//{
//	//struct a = 1; error
//	//只能创建全局变量，也可以初始化
//	printf("%c %d %lf\n", s.c, s.i, s.d);
//	s.c = 'f';
//	printf("%c %d %lf\n", s.c, s.i, s.d);
//
//	return 0;
//}



//struct Stu
//{
//	char name[20];
//	int age;
//	char sex[10];
//	char id[20];
//};
//
//int main()
//{
//	struct Stu s = { "zhangsan",15,"男","20164563" };
//	printf("name:%s\n", s.name);
//	printf("age:%d\n", s.age);
//	printf("sex:%s\n", s.sex);
//	printf("id:%s\n", s.id);
//	return 0;
//}



//int main()
//{
//	float a = 3.14f;
//	printf("%f", a);
//	return 0;
//}

//int main()
//{
//
//	//测试5.5
//	float f = 5.5f;
//	//101.1
//	//科学计数法1.011 * 2^2
//	//(-1)^0 * 1.011 * 2^2
//	//S=0,M=1.011,E=2
//	//在内存中存储：
//	//0 10000001 01100000000000000000000
//	//16进制表示：0x40 b0 00 00 
//	//小端存储是：00 00 b0 40
//	return 0;
//}



//#include <stdio.h>
////X86环境 ⼩端字节序
//int main()
//{
//	int a[4] = { 1, 2, 3, 4 };
//	int* ptr1 = (int*)(&a + 1);
//	int* ptr2 = (int*)((int)a + 1);
//	printf("%#x,%#x", ptr1[-1], *ptr2);//以十六进制打印
//	return 0;
//}


